Pseudorandom number generation (PRNG or simply RNG) is an important element of many computer applications, including parallel and distributed simulations. Improper PRNG can result in generation of highly correlated and statistically dependent pseudorandom numbers that produce incorrect simulation results. For example, splitting linear congruential generators for use in parallel computing environments may produce highly correlated parallels streams of pseudorandom numbers. PRNG can also be computationally demanding, thereby limiting simulation performance. For example, inversive generators that compute an inverse modulus function may limit performance when implemented using traditional iterative techniques.
Accordingly, there is a need for random number generators that efficiently generate parallel streams of pseudorandom numbers (PRNs).
Like reference numerals refer to corresponding parts throughout the drawings.